// import { getOpenId } from '@/utils/wx/wxopenid'
import * as types from '../mutation-types'
import {
  USER_SET_WX_USERINFO
} from '../../api/api'
import { post } from '@/methods/net'
// import router from '../../router'
// import { loading } from '@/methods/talk'
// import { environment, decodeBase64 } from '@/methods/tool'

const actions = {
    // 获取openId
  getOpenId ({ dispatch }) {
    dispatch('recordUserWxUserInfo')
    return false
  },
    // 存储用户微信信息
  async recordUserWxUserInfo () {
    try {
      let params = {
        gender: '男'
      }
      const res = await post(USER_SET_WX_USERINFO, params)
      console.log(res)
    } catch (error) {
      console.log(error)
    }
  },
    // 判断业务员登录状态
    /**
    * type 成功跳转类型 route:路由跳转/location:浏览器跳转
    * path 跳转路径
    */
  async checkClerkStatus ({ state, dispatch }, backUrl) {
    console.log('环境', state.channel)
    if (state.channel === 'app') {
      return dispatch('appCheckClerkStatus', backUrl)
    } else {
      return dispatch('wxCheckClerkStatus', backUrl)
    }
  },
    // 倒计时
  countDown ({ state, commit }) {
    commit(types.LOGIN_EDIT_COMMON, { objName: 'enter', key: 'time', data: 120 })
    let timeId = setInterval(() => {
      if (state.enter.time >= 0) {
        commit(types.LOGIN_EDIT_COMMON, { objName: 'enter', key: 'time', data: state.enter.time - 1 })
      } else {
        clearInterval(state.enter.timeId)
      }
    }, 1000)
    commit(types.LOGIN_EDIT_COMMON, { objName: 'enter', key: 'timeId', data: timeId })
  }
}

const mutations = {
    // 添加数据的方法
  [types.LOGIN_EDIT_COMMON] (state, { key, data, objName, index }) {
    if (index || index === 0) {
      state[objName][index][key] = data
    } else if (objName) {
      state[objName][key] = data
    } else {
      state[key] = data
    }
  },
    // 批量添加数据的方法
  [types.LOGIN_EDIT_MULTIPLE_COMMON] (state, { objName, index, list }) {
    let keyName = ''
    if (index || index === 0) {
      keyName = [objName][index]
    } else if (objName) {
      keyName = [objName]
    }
    list.forEach((item) => {
      if (keyName) {
        state[keyName][item.key] = item.data
      } else {
        state[item.key] = item.data
      }
    })
  }
}

const initState = {
  wxUser: {
    openid: '',
    picurl: '', // 图片地址
    subscribe: '', // 订阅信息 0表示未关注
    unionid: '',
    nickname: '', // 昵称
    sex: '' // 性别 1男 2女
  }, // 微信信息
  user: {
    userType: '',
    loggedOn: ''
  }, // 用户登录获取的信息
  token: '', // 用户token
  channel: '', // 渠道： app 或者 空为微信
    // 营销基地相关数据
  enter: {
    phone: '', // 输入的手机号
    verificationCode: '', // 输入的验证码
    time: -1,
    timeId: '',
    code: '', // 业务员码
    name: '', // 姓名
    cardNum: '' // 身份证号码
  },
  giftPlan: '', // 获取路由上的礼物发放计划并存起来
    // 跳转地址
  href: {
        // 直播
    live:
            'https://www.zhi-niao.com/app/liveShare/index.html?appid=com.pingan.zhiniao&source=liveShow&h5ShareType=1&liveRoomId=4328106&from=groupmessage&channel=QRCODE&liveKind=0',
        // 礼物
    gift: ''
  }
}

const state = sessionStorage.getItem('$_login') ? JSON.parse(sessionStorage.getItem('$_login')) : initState

/** 存储 / 跳转至发起登录操作的页面
 * type 成功跳转类型 route:路由跳转/location:浏览器跳转
 * path 跳转路径
 */
// const setBackUrl = (backUrl) => {
//     // 如果是存储模式
//   if (backUrl) {
//     sessionStorage.setItem('$_checkLoginSuccessUrl', JSON.stringify(backUrl))
//     return false
//   }
//     // 如果是跳转模式
//   const { type, path } = JSON.parse(sessionStorage.getItem('$_checkLoginSuccessUrl'))
//   if (type === 'router') {
//     router.replace({ path })
//   }
// }

export default {
  actions,
  state,
  mutations
}
